package Concurrency.AsynTaskExecute;

import java.util.Timer;
import java.util.TimerTask;

/**
 * Timer异常示例
 * 运行该例子发现，当TaskB发生异常后，导致TaskA也不能正常执行
 * 因此，如果希望各个任务不互相干扰，一定要在run方法内捕获所有异常
 */

public class TimerException {
    static class TaskA extends TimerTask {
        @Override
        public void run() {
            System.out.println("task A");
        }
    }

    static class TaskB extends TimerTask {
        @Override
        public void run() {
            System.out.println("task B");
            throw new RuntimeException();
        }
    }

    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new TaskA(), 1, 1000);
        timer.schedule(new TaskB(), 2000, 1000);
    }
}
